package com.yonyou.brigade.basic_init.model;

import com.baomidou.mybatisplus.enums.IdType;
import java.util.Date;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.activerecord.Model;
import com.baomidou.mybatisplus.annotations.TableName;
import java.io.Serializable;

/**
 * <p>
 * 
 * </p>
 *
 * @author jiangzhf@yonyou.com
 * @since 2018-06-06
 */
@TableName("bri_channel")
public class BriChannel extends Model<BriChannel> {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    /**
     * 租户ID
     */
    private String tenant;
    /**
     * 组织PK
     */
    private String orgpk;
    /**
     * 渠道code
     */
    private String channel;
    /**
     * 配置信息
     */
    private String config;
    /**
     * 是否启用 0否 1启用
     */
    private Integer enable;

    /**
     * 是否启用提前审批 0否 1 开启 默认0
     */
    @TableField("is_pre_approve")
    private Integer isPreApprove;
    /**
     * 联系人手机号
     */
    private String phone;
    /**
     * 开通类型 1按照租户开通  2按照组织开通
     */
    @TableField("open_type")
    private Integer openType;
    /**
     * 开通时间
     */
    @TableField("create_time")
    private Date createTime;
    /**
     * 是否启用提前审批 0否 1 开启
     */
    @TableField("sign_for_tenant")
    private String signForTenant;
    /**
     * 是否向第三方商旅平台同步人员 0否 1 开启
     */
    @TableField("sync_user")
    private Integer syncUser;
    /**
     * 组织部门同步 0 不同步 1 同步
     */
    @TableField("sync_org_dept")
    private Integer syncOrgDept;
    /**
     * 职务职级同步 0 职务 1 职级 2 不同步
     */
    @TableField("sync_rank")
    private Integer syncRank;
    /**
     * 单点登录标识 0 员工号 1 手机号 2 身份证号
     */
    @TableField("sso_key")
    private Integer ssoKey;
    /**
     * 费用归属信息同步 0 名称 1 编号 2 不同步
     */
    @TableField("sync_cost_info")
    private Integer syncCostInfo;
    /**
     * 行程出发城市控制 0 不控制 1 控制
     */
    @TableField("from_city_control")
    private Integer fromCityControl;
    /**
     * 预定弹性天数
     */
    @TableField("book_elastic_day")
    private Integer bookElasticDay;
    /**
     * 申请单职级二次传参 0 不传 1 预订人 2 申请人
     */
    @TableField("rank_second_pass")
    private Integer rankSecondPass;
    /**
     * 当天往返不可住宿 0 否 1 是
     */
    @TableField("no_hotel_one_day")
    private Integer noHotelOneDay;
    /**
     * 住宿城市入住策略 0 不限 1 所有途径城市 2 所有途径目的地城市
     */
    @TableField("hotel_city_strategy")
    private Integer hotelCityStrategy;
    /**
     * 允许报销的统付订单 0 机票 1 酒店 2 火车票 3 用车
     */
    @TableField("reimbursement_pay_by_enterprise")
    private String reimbursementPayByEnterprise;
    /**
     * 允许报销的个付订单 0 机票 1 酒店 2 火车票 3 用车
     */
    @TableField("reimbursement_pay_by_self")
    private String reimbursementPayBySelf;
    /**
     * 酒店前台自付订单 0 不拉取 1 拉取
     */
    @TableField("hotel_reception_pay_by_self")
    private Integer hotelReceptionPayBySelf;

    private Date ts;

    public Integer getId() {
        return id;
    }

    public void setId(Integer id) {
        this.id = id;
    }

    public String getTenant() {
        return tenant;
    }

    public void setTenant(String tenant) {
        this.tenant = tenant;
    }

    public String getOrgpk() {
        return orgpk;
    }

    public void setOrgpk(String orgpk) {
        this.orgpk = orgpk;
    }

    public String getChannel() {
        return channel;
    }

    public void setChannel(String channel) {
        this.channel = channel;
    }

    public String getConfig() {
        return config;
    }

    public void setConfig(String config) {
        this.config = config;
    }

    public Integer getEnable() {
        return enable;
    }

    public void setEnable(Integer enable) {
        this.enable = enable;
    }

    public Integer getIsPreApprove() {
        return isPreApprove;
    }

    public void setIsPreApprove(Integer isPreApprove) {
        this.isPreApprove = isPreApprove;
    }

    public String getPhone() {
        return phone;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public Integer getOpenType() {
        return openType;
    }

    public void setOpenType(Integer openType) {
        this.openType = openType;
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public Date getTs() {
        return ts;
    }

    public void setTs(Date ts) {
        this.ts = ts;
    }

    public String getSignForTenant() {
        return signForTenant;
    }

    public void setSignForTenant(String signForTenant) {
        this.signForTenant = signForTenant;
    }

    public Integer getSyncUser() {
        return syncUser;
    }

    public void setSyncUser(Integer syncUser) {
        this.syncUser = syncUser;
    }

    public Integer getSyncOrgDept() {
        return syncOrgDept;
    }

    public void setSyncOrgDept(Integer syncOrgDept) {
        this.syncOrgDept = syncOrgDept;
    }

    public Integer getSyncRank() {
        return syncRank;
    }

    public void setSyncRank(Integer syncRank) {
        this.syncRank = syncRank;
    }

    public Integer getSsoKey() {
        return ssoKey;
    }

    public void setSsoKey(Integer ssoKey) {
        this.ssoKey = ssoKey;
    }

    public Integer getSyncCostInfo() {
        return syncCostInfo;
    }

    public void setSyncCostInfo(Integer syncCostInfo) {
        this.syncCostInfo = syncCostInfo;
    }

    public Integer getFromCityControl() {
        return fromCityControl;
    }

    public void setFromCityControl(Integer fromCityControl) {
        this.fromCityControl = fromCityControl;
    }

    public Integer getBookElasticDay() {
        return bookElasticDay;
    }

    public void setBookElasticDay(Integer bookElasticDay) {
        this.bookElasticDay = bookElasticDay;
    }

    public Integer getRankSecondPass() {
        return rankSecondPass;
    }

    public void setRankSecondPass(Integer rankSecondPass) {
        this.rankSecondPass = rankSecondPass;
    }

    public Integer getNoHotelOneDay() {
        return noHotelOneDay;
    }

    public void setNoHotelOneDay(Integer noHotelOneDay) {
        this.noHotelOneDay = noHotelOneDay;
    }

    public Integer getHotelCityStrategy() {
        return hotelCityStrategy;
    }

    public void setHotelCityStrategy(Integer hotelCityStrategy) {
        this.hotelCityStrategy = hotelCityStrategy;
    }

    public String getReimbursementPayByEnterprise() {
        return reimbursementPayByEnterprise;
    }

    public void setReimbursementPayByEnterprise(String reimbursementPayByEnterprise) {
        this.reimbursementPayByEnterprise = reimbursementPayByEnterprise;
    }

    public String getReimbursementPayBySelf() {
        return reimbursementPayBySelf;
    }

    public void setReimbursementPayBySelf(String reimbursementPayBySelf) {
        this.reimbursementPayBySelf = reimbursementPayBySelf;
    }

    public Integer getHotelReceptionPayBySelf() {
        return hotelReceptionPayBySelf;
    }

    public void setHotelReceptionPayBySelf(Integer hotelReceptionPayBySelf) {
        this.hotelReceptionPayBySelf = hotelReceptionPayBySelf;
    }

    public static final String ID = "id";

    public static final String TENANT = "tenant";

    public static final String ORGPK = "orgpk";

    public static final String CHANNEL = "channel";

    public static final String CONFIG = "config";

    public static final String ENABLE = "enable";

    public static final String OPEN_TYPE = "open_type";

    public static final String CREATE_TIME = "create_time";

    public static final String TS = "ts";

    public static final Integer SYNCUSER = 1;
    public static final Integer SYNCORGDEPT = 1;
    public static final Integer SYNCPOST = 0;
    public static final Integer SYNCRANK = 1;
    public static final Integer SYNCCOSTINFO_NAME = 0;
    public static final Integer SYNCCOSTINFO_CODE = 1;
    public static final Integer FROMCITYCONTROL = 1;
    public static final Integer RANKSECONDPASS = 1;
    public static final Integer NOHOTELONEDAY = 1;
    public static final Integer HOTELCITYSTRATEGY_ALL = 0;
    public static final Integer HOTELCITYSTRATEGY_MIXED = 1;
    public static final Integer HOTELCITYSTRATEGY_TOCITY = 2;
    public static final Integer SSOKEY_CODE = 0;
    public static final Integer SSOKEY_PHONE = 1;
    public static final Integer SSOKEY_CID = 2;
    public static final Integer NOHOTELRECEPTIONPAYBYSELF = 0;

    @Override
    protected Serializable pkVal() {
        return this.id;
    }

    @Override
    public String toString() {
        return "BriChannel{" +
        "id=" + id +
        ", tenant=" + tenant +
        ", orgpk=" + orgpk +
        ", channel=" + channel +
        ", config=" + config +
        ", enable=" + enable +
        ", openType=" + openType +
        ", createTime=" + createTime +
        ", signForTenant=" + signForTenant +
        ", syncUser=" + syncUser +
        ", syncOrgDept=" + syncOrgDept +
        ", syncRank=" + syncRank +
        ", ssoKey=" + ssoKey +
        ", syncCostInfo=" + syncCostInfo +
        ", fromCityControl=" + fromCityControl +
        ", bookElasticDay=" + bookElasticDay +
        ", rankSecondPass=" + rankSecondPass +
        ", noHotelOneDay=" + noHotelOneDay +
        ", hotelCityStrategy=" + hotelCityStrategy +
        ", ts=" + ts +
        "}";
    }
}
